package com.turing.post.account.util;

import javax.ejb.Local;
import javax.ejb.Remote;

import com.turing.post.util.PCPSApplicationException;

/**
 * 帐户子系统交易流水接口
 * 
 * @author ZXL
 * 
 */
@Remote
@Local
public interface AccountSystemTradDetailDao {
	/**
	 * 帐户子系统交易流水插入
	 * 
	 * @param astd
	 *            帐户子系统交易流水对象
	 * @throws PCPSApplicationException
	 *             异常信息
	 */
	public void insert(AccountSystemTradDetail astd)
			throws PCPSApplicationException;

	/**
	 * 更新
	 * 
	 * @param astd
	 * @throws PCPSApplicationException
	 */
	public void update(AccountSystemTradDetail astd)
			throws PCPSApplicationException;

	/**
	 * 重置某交易流水的三个Cancel字段为NULL
	 * 
	 * @param accSeqNo
	 * @throws PCPSApplicationException
	 */
	public void resetCancelInf(String accSeqNo) throws PCPSApplicationException;

	/**
	 * 根据帐户子系统流水号从帐户子系统交易流水表检索
	 * 
	 * @param accSeqNo
	 *            帐户子系统流水号
	 * @return 帐户子系统交易流水对象列表
	 */
	public AccountSystemTradDetail getAccountSystemTradDetailByAccSeqNo(
			String accSeqNo);

	/**
	 * 根据帐户子系统流水号从帐户子系统交易历史流水表检索
	 * 
	 * @param accSeqNo
	 *            帐户子系统流水号
	 * @return 帐户子系统交易流水对象列表
	 */
	public AccountSystemTradDetail getAccountSystemHisTradDetailByAccSeqNo(
			String accSeqNo);

	/**
	 * 更新历史交易流水的三个撤销字段
	 * 
	 * @return 更新记录数
	 * @param astd
	 *            帐户子系统交易流水对象
	 */
	public int cancelAccountSystemHisTradDetail(AccountSystemTradDetail astd);
}
